Запись MX

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

За́пись MX (от англ. mail exchanger) — тип DNS-записи, предназначенный для маршрутизации электронной почты с использованием протокола SMTP.

В каждой MX-записи для конкретного доменного имени (например: @wikipedia.org) хранятся два поля:

  • имя почтового сервера, обслуживающего домен (например: mx1001.wikimedia.org). По данному имени с помощью A-записи будет определяться IP-адрес, поэтому A-запись должна также существовать (недопустимо вместо A использовать CNAME, так как в этом случае возможно зацикливание, подробнее описано в разделе «Особенности»);
  • порядковый номер предпочтения этого сервера (например: 10) — используется в случаях, когда доменное имя обслуживается несколькими почтовыми серверами.

Чтобы отправить электронную почту, сервер-отправитель запрашивает у DNS-сервера MX-запись домена получателя электронного сообщения (то есть части адреса после символа «@»). В результате запроса возвращается список имён хостов почтовых серверов, принимающих входящую почту для данного домена, и номеров предпочтения для каждого из них. Сервер-отправитель затем пытается установить SMTP-соединение с одним из этих хостов, выбирая имена по порядку, начиная с наименьшего номера предпочтения, и перебирая их до тех пор, пока не удастся установить соединение. Если имеется несколько хостов с одинаковым предпочтением, то должны быть предприняты попытки установить соединение с каждым из них.

Если ни с одним сервером не удалось установить соединение, сервер-отправитель будет продолжать попытки в течение некоторого времени (в зависимости от настроек, обычно от нескольких часов до двух недель), после чего сформирует и отправит отправителю письма отчёт об ошибке.

Механизм записей MX предоставляет возможность использовать множество серверов для одного домена и упорядочивания их использования в целях уменьшения нагрузки и увеличения вероятности успешной доставки почты. Кроме того, такой механизм предоставляет возможность распределить обработку входящей почты среди нескольких физических серверов.

Особенности обработки MX при маршрутизации почты

[править | править код]

Для одного домена может быть указано несколько почтовых серверов с разным предпочтением. Если по каким-то причинам почта доставляется не на конечный узел, а на транзитный (с малым предпочтением и, соответственно, большим числом в MX-записи), этот транзитный узел при дальнейшей маршрутизации (релеинге) должен игнорировать свою собственную MX-запись и MX-записи серверов, менее предпочтительных, чем он сам. Для правильного исключения самого себя из списка адресов для доставки почты, в MX-записях не должны указываться канонические имена (псевдонимы CNAME). В случае некорректной настройки возможны циклы, когда сервер пытается доставить почту самому себе.

Примеры запроса MX-записи

[править | править код]

С помощью утилиты host в UNIX-подобных ОС

[править | править код]

С помощью утилиты host в ОС GNU/Linux, FreeBSD и т. п. запросим запись MX для домена wikipedia.org.

 $ host -t mx wikipedia.org.
 wikipedia.org mail is handled by 50 lists.wikimedia.org.
 wikipedia.org mail is handled by 10 mchenry.wikimedia.org.

Здесь список почтовых серверов, обслуживающих почту домена, представлен двумя хостами: lists.wikimedia.org и mchenry.wikimedia.org. MX-приоритеты у них 50 и 10 соответственно. Таким образом, при попытке доставить почту адресату в домене wikipedia.org первым будет выбран сервер mchenry.wikimedia.org.

С помощью утилиты nslookup

[править | править код]

С помощью утилиты nslookup в ОС семейства Microsoft Windows запросим запись MX для домена wikipedia.org.

 C:\>nslookup -type=mx wikipedia.org ns2.wikimedia.org
 Server:  ns2.wikimedia.org
 Address:  91.198.174.4
 
 wikipedia.org   MX preference = 50, mail exchanger = lists.wikimedia.org
 wikipedia.org   MX preference = 10, mail exchanger = mchenry.wikimedia.org
 lists.wikimedia.org     internet address = 91.198.174.5
 mchenry.wikimedia.org   internet address = 208.80.152.186

Примечание: примерно так же работает nslookup в UNIX.

  • DNS — система доменных имён;
  • SMTP — широко используемый протокол передачи почты.